bitkeeper revision 1.1198 (420fce12wkkVt8DoRztlJcYxK80wIw)
authoriap10@freefall.cl.cam.ac.uk <iap10@freefall.cl.cam.ac.uk>
Sun, 13 Feb 2005 22:00:50 +0000 (22:00 +0000)
committeriap10@freefall.cl.cam.ac.uk <iap10@freefall.cl.cam.ac.uk>
Sun, 13 Feb 2005 22:00:50 +0000 (22:00 +0000)
minor fixes to earlier pagetable change
Signed-off-by: ian.pratt@cl.cam.ac.uk
xen/arch/x86/domain.c
xen/arch/x86/x86_32/domain_build.c

index 65753330d927b9f27889e97af1dea4905dce0bfc..d01c8765e3e43aaaf059d729c80bd450d9c77d2a 100644 (file)
@@ -299,7 +299,7 @@ static void alloc_monitor_pagetable(struct exec_domain *ed)
     struct pfn_info *mpfn_info;
     struct domain *d = ed->domain;
 
-    ASSERT(!ed->arch.monitor_table); /* we should only get called once */
+    ASSERT(!pagetable_val(ed->arch.monitor_table)); /* we should only get called once */
 
     mpfn_info = alloc_domheap_page(NULL);
     ASSERT( mpfn_info ); 
@@ -502,8 +502,11 @@ int arch_final_setup_guest(
         return vmx_final_setup_guest(d, c);
 #endif
 
-    update_pagetables(d);  /* this assigns shadow_pagetable 
-                                and monitor_table */
+    /* We don't call update_pagetables() as we actively want fields such as 
+     * the linear_pg_table to be null so that we bail out early of 
+     * shadow_fault in case the vmx guest tries illegal accesses with
+     * paging turned of. 
+     */
 
     return 0;
 }
index b0854f15a9496b9c77a5f6853ab29444bd2ef592..46c409313968f1c7255e6489c0c5e52ab0cdf612 100644 (file)
@@ -385,7 +385,7 @@ int construct_dom0(struct domain *d,
     if (0) /* XXXXX DO NOT CHECK IN ENABLED !!! (but useful for testing so leave) */
     {
         shadow_mode_enable(d, SHM_test); 
-        update_pagetable(ed); /* XXX SMP */
+        update_pagetables(ed); /* XXX SMP */
     }
 #endif